Common Job spec reporting via Beholder - #23227
Conversation
|
✅ No conflicts with other open PRs targeting |
|
I see you updated files related to
|
|
… reporter Fold core/services/cljobinfo into the existing nodestatusreporter/jobspec service instead of adding a parallel reporter. CLJobInfo is now emitted for every job regardless of type, alongside the unchanged OCR2-only JobSpecEvent track. application.go and the [JobSpecReporter] config are unchanged. Requires: smartcontractkit/chainlink-protos#432 RANE-4655
| ProposedAt time.Time | ||
| ApprovedAt time.Time |
There was a problem hiding this comment.
Is there any risk/ambiguity with using time.Time as opposed to a unix ms int64, for example?
There was a problem hiding this comment.
updated to account for this risk, but used google.protobuf.Timestamp
chainlink-protos changes: smartcontractkit/chainlink-protos@6acc8ef
chainlink changes: a66cc6d
|




Emits every job the node runs as
CLJobInfotelemetry on Beholder — job identity, JDprovenance, and the full job definition as TOML "what is this node
actually configured to run?" for any job type.
Depends on smartcontractkit/chainlink-protos#432 (merged);
node-platformis bumped to914a0fconmain.Revised after review. The previous revision added a
core/services/cljobinfopackage and asecond service; this folds it into the existing
nodestatusreporter/jobspecservice, whichalready did the same thing for one job type. One service, one listener, one poll loop, two
tracks:
CLJobInfoJobSpecEvent[JobSpecReporter] Enabled(unchanged)application.gois untouched — the service was already wired withcsaPubKeyHex,static.Version,hostnameandfeedsORM. A failure on one track never suppresses theother.
Behaviour change worth flagging
CLJobInfois not gated by[JobSpecReporter] Enabled, so any node with Beholderconfigured starts emitting it without a per-node opt-in. Nodes with
[Telemetry] Enabledfalse (the default) still emit nothing, so this only produces traffic where telemetry is
already on. Heartbeat cadence is
PollingInterval, default 1h.Verification
Deployed to
cl-df-eth-sepolia-preprod(stage) and queriedglue.node_platform.common_v1_cljobinfo: 974 rows, 5 nodes, 7 jobs over ~13h, all fieldsmapped,
spec_tomlpopulated on every row.bootstrapjobs are included, which theOCR2-only telemetry never covered.